package org.codehaus.mojo.wagon.shared;

import org.apache.maven.plugin.logging.Log;
import org.apache.maven.shared.model.fileset.FileSet;
import org.apache.maven.wagon.Wagon;
import org.apache.maven.wagon.WagonException;

import java.io.IOException;

/**
 *
 */
public interface WagonUpload {

    /**
     * Upload a set of files via FileSet interface to a remote repository via Wagon
     *
     * @param wagon    - a Wagon instance
     * @param fileset  file set to upload
     * @param logger   logger used
     * @param optimize locally compressed and uncompress at the remote site if scp is use
     * @throws WagonException if nay wagon exception
     * @throws IOException    if any io exception
     */
    void upload(Wagon wagon, FileSet fileset, boolean optimize, Log logger) throws WagonException, IOException;
}
